上一章節講到說,作業系統的定位是在硬體設備與應用程式的中介層,要管理其下的硬體運行狀況,也要顧及上層應用程式的支援。電腦的歷史並不久遠,但卻發展和改變的非常快速,今天來探討一下從最古早超大一台的電腦作業系統,到現在的演化過程。
Bash雖然是最古早的作業系統類型,但至今仍有一些地方在使用這一類型的作業系統架構。首先,當一個程式需要被執行的時候,會先被寫入到我們的記憶體裡面(CPU沒辦法直接讀取硬碟),Bash System最大的特色就在於,當程式被載入後,就會開始(瘋狂)的執行,程式執行間不會有任何的中斷和使用者互動,並且一次只能處理一個程式,也因為I/O的速度是遠小於CPU的運算速度,CPU常常會處於閒置的狀態(等待I/O)。
Multi-programming的出現就是要來改善Bash System的運作方式,CPU的閒置時間太長的問題,改善的方法就是一個工作做的太閒,那就給CPU很多個工作。與Bash不同,multi-programming能夠載入多個程式至記憶體並執行,一但CPU執行時遇到I/O,馬上就轉去執行另一個job,只要當I/O結束時再回來通知CPU說已經完成就好。透過這樣的方法,能夠減少CPU在閒置的時間,也能夠同時執行多支程式,也比較符合我們現代對於作業系統的需求,但依舊沒有辦法解決的事使用者的介面,程式在執行時是沒有辦法被使用者插手的。
Time-sharing就是我們近代所使用的作業系統,其使用時間的觀念去切割CPU的運行,CPU會在一個很短的時間間隔不斷的轉跳執行的instruction,基本上有三種情況會觸發這個轉跳(switch)的機制
透過這個不斷切換的過程,可以安插使用者的互動(interactive)在其中(大多是鍵盤和滑鼠),也因為這樣子的機制,可以讓多個使用者同時去使用這台機器的資源。藉此方法以滿足讓資源充分使用,以及使用者互動的需求。
為了達到Time-Sharing System,作業系統有幾個大方向需要去處理:
當然作業系統不只這幾個大方向,但這就是為什麼Operating System Concepts這本恐龍書厚厚一疊的原因了。